package csu.rjxyg.dao;

import java.util.List;

import csu.rjxyg.bean.core.BaseBean;
import csu.rjxyg.bean.core.BaseList;
import csu.rjxyg.bean.core.BaseObject;

public interface BaseDAO {
	
	
	//将指定实体类添加入表中
	//bean为需要添加进去的实体类
	//返回值为是否添加成功
	public boolean insertBean(BaseObject bean);
	
	
//	//根据userId和userPass实现登陆
//	//bean为包含了userId和userPass的BaseObject对象
//	//登陆成功则返回该用户的用户实体
//	public BaseObject login(BaseObject bean) throws Exception;
	
	
	//修改指定的实体类
	//baseBeanId 为需要修改的实体类的id, bean为修改后的实体类
	//返回值为是否修改成功
	public boolean updateBean(String beanId, BaseObject bean);
	
	
	//获取指定实体类的信息
	//beanId为需要查询的实体类的编号
	//返回值为查询到的实体类
	public BaseObject getBeanInfoById(String beanId);
	
	
	//根据样例查询实体类
	//exampleBean为需要查询的实体类
	//返回值为与样例相似的实体类
	public BaseList getBeanInfoByExample(BaseObject exampleBean);
	
	
	//根据样例查询实体类
	//exampleBean为需要查询的实体类
	//返回值为与样例相似的实体类
	//按照fieldName字段排序
	//status为1表示升序，   -1表示降序
	//两个数组一一对应
	public BaseList getBeanInfoByExample(BaseObject exampleBean, String[] fieldName, int[] status);
	
	
	
	//获取该表的所有实体类
	//返回值为该表中所有数据的list
	public BaseList getAllBean();
	
	
	
	//获取该表的所有实体类
	//返回值为该表中所有数据的list
	//按照fieldName字段排序
	//status为1表示升序，   -1表示降序
	//两个数组一一对应
	public BaseList getAllBean(String[] fieldName, int[] status);
	
	
	//删除指定实体类的信息
	//beanId为需要删除的实体类的编号
	//返回值为是否删除成功
	public boolean deleteBean(String beanId);
	
	
	//批量删除
	public boolean deleteBean(String[] beanId);
	
	
}
